package org.tinygame.herostory.model;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 用户管理器
 * @author shkstart
 * @create 2022-05-05 9:46
 */
public final class UserManager {
    /**
     * 私有化默认构造器
     */
    private UserManager(){}

    /**
     * 用户字典，记录进入服务器的用户
     */
    private static final Map<Integer, User> _userMap=new ConcurrentHashMap<>();

    /**
     *添加用户
     * @param newUser
     */
    public static void addUser(User newUser){
        if(null!=newUser){
            _userMap.put(newUser.userId,newUser);
        }

    }

    /**
     *根据用户id移除用户
     * @param userId
     */
    public static void removeUserById(int userId){
        _userMap.remove(userId);
    }

    /**
     * 返回字典中用户列表
     * @return
     */
    public static Collection<User> listUser(){
        return _userMap.values();
    }

    /**
     * 根据用户id返回用户
     * @param userId
     * @return
     */
    public static User getUserById(int userId){
        return _userMap.get(userId);
    }

}
